﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MJM.RPP.EntidadesNegocio;
using MJM.SPP.EntidadesNegocio;
using MJM.SCA.EntidadesNegocio;
using MJM.Principal;

namespace wRegPadron.Formularios
{
    public partial class CambioClaveSID : System.Web.UI.Page
    {
        private void CargarAutocompletar(TextBox txt, string[] array)
        {
            string param = "[";
            for (int i = 0; i < array.Count(); i++)
            {
                param = param + '"' + array[i] + '"';
                if (i < array.Count() - 1)
                    param = param + ",";
            }
            param = param + "]";


            txt.Attributes.Add("data-source", param);
            txt.Attributes.Add("data-provide", "typeahead");
            txt.Attributes.Add("data-items", "4");
        }

        private void CargarCampos()
        {
            lbl1.Text = Labels.Nombre;
            lbl2.Text = Labels.Paterno;
            lbl3.Text = Labels.Materno;
            lbl5.Text = Labels.ClaveNueva;
            lbl6.Text = Labels.ClaveConfirmacion;
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    //string usuario = Request.QueryString["user"].ToString();
                    //string pass = Request.QueryString["pass"].ToString();
                    string[] nombre = MediadorCN.GetPersonaTramite().ListaNombres();
                    string[] paterno = MediadorCN.GetPersonaTramite().ListaPaterno();
                    string[] materno = MediadorCN.GetPersonaTramite().ListaMaterno();
                    CargarAutocompletar(txtNombre, nombre);
                    CargarAutocompletar(txtPaterno, paterno);
                    CargarAutocompletar(txtMaterno, materno);
                    CargarCampos();
                    rUsuarios.Visible = false;
                    lblErrorBusqueda.Text = "";
                    lblEncontrado.Text = "";
                }
            }
            catch
            {
                Response.Redirect("http://gestion.munijesusmaria.gob.pe/appweb/wperspad/Login.aspx");
            }
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            lblActualizacionCorrecta.Text = "";
            lblErrorActualizacion.Text = "";
            PersonaTramiteEN obj = new PersonaTramiteEN();
            obj.Nombres = txtNombre.Text;
            obj.ApePaterno = txtPaterno.Text;
            obj.ApeMaterno = txtMaterno.Text;
            obj.Estado = 1;
            obj.Eliminado = 1;
            lblEncontrado.Text = "";
            lblErrorBusqueda.Text = "";
            var lst = MediadorCN.GetPersonaTramite().ListaGeneral(obj, 0);
            if (lst.Count > 0)
            {
                rUsuarios.Visible = true;
                if (lst.Count > 10)
                {
                    rUsuarios.DataSource = lst.GetRange(0, 10);
                }
                else if (lst.Count == 1)
                {
                    if (lst[0].Usuario != "")
                    {
                        hfIdSeleccionado.Value = lst[0].IDPersona.ToString();
                        rUsuarios.Visible = false;
                        lblErrorBusqueda.Text = "";
                        hfUsuario.Value = lst[0].Usuario;
                        lblEncontrado.Text = "Usted ha seleccionado al usuario " + lst[0].NombrePersona;
                    }
                    else
                    {
                        rUsuarios.Visible = false;
                        lblEncontrado.Text = "";
                        lblErrorBusqueda.Text = "La persona seleccionada no tiene cuenta de usuario SID";
                    }
                }
                else
                    rUsuarios.DataSource = lst;
                rUsuarios.DataBind();
            }
            else
            {
                lblErrorBusqueda.Text = "No se encontraron usuarios con los filtros especificados";
            }
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            if (hfUsuario.Value != "")
            {
                int result = MediadorCN.GetUsuario().CambiarClaveTramite(hfUsuario.Value.ToString(), txtClaveNueva.Text);
                if (result > 0)
                {
                    txtPaterno.Text = "";
                    txtMaterno.Text = "";
                    txtNombre.Text = "";
                    lblActualizacionCorrecta.Text = "Se actualizó la contraseña correctamente";
                    lblEncontrado.Text = "";
                    lblErrorBusqueda.Text = "";
                    hfUsuario.Value = "";
                    hfIdSeleccionado.Value = "";
                    rUsuarios.Visible = false;
                }
                else
                {
                    rUsuarios.Visible = false;
                    lblEncontrado.Text = "";
                    lblErrorBusqueda.Text = "";
                    lblErrorActualizacion.Text = "Hubo un error al intentar actualizar la contraseña, intentelo nuevamente";
                    lblActualizacionCorrecta.Text = "";
                    hfUsuario.Value = "";
                    hfIdSeleccionado.Value = "";
                }
            }
            else
            {
                rUsuarios.Visible = false;
                lblEncontrado.Text = "";
                lblErrorBusqueda.Text = "";
                lblActualizacionCorrecta.Text = "";
                lblErrorActualizacion.Text = "Para actualizar la contraseña primero debe seleccionar un usuario";
            }
        }

        protected void rUsuarios_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            lblActualizacionCorrecta.Text = "";
            lblErrorActualizacion.Text = "";
            if (e.CommandName == "Seleccionar")
            {
                string usuario = ((Label)e.Item.FindControl("lblUsuario")).Text;
                if (usuario != "")
                {
                    int idPersona = Convert.ToInt32(((HiddenField)e.Item.FindControl("hfIdPersona")).Value);
                    string nombre = ((Label)e.Item.FindControl("lblNombreCompleto")).Text;
                    hfUsuario.Value = usuario;
                    hfIdSeleccionado.Value = idPersona.ToString();
                    rUsuarios.Visible = false;
                    lblErrorBusqueda.Text = "";
                    lblEncontrado.Text = "Usted ha seleccionado al usuario " + nombre;
                }
                else
                {
                    lblEncontrado.Text = "";
                    lblErrorBusqueda.Text = "La persona seleccionada no tiene cuenta de usuario SID";
                }
            }
        }
    }
}